package unq.edu.cui.tp.modelo.ventanas;

import org.uqbar.commons.model.ObservableUtils;
import org.uqbar.commons.utils.Observable;

import unq.edu.cui.tp.dominio.Empleado;
import unq.edu.cui.tp.dominio.Sistema;

@Observable
public class CrearEmpleado extends EditarEmpleado {

	
	private Sistema sistema;
	
	
	/**
	 * Agregar un nuevo dia disponible al empleado
	 */
	public void agregarDiaDisponible(){
		this.getEmpleado().agregarDiaDisponible(getDia());
		ObservableUtils.firePropertyChanged(this, "puedeAgregar", this.isPuedeAgregar());
	}
	
	/**
	 * Agregar un empleado al sistema
	 */
	public void agregarEmpleado(){
		this.getSistema().agregarEmpleado(this.getEmpleado());
	}
	
	/////////////////////////////////////////////
	//Accersors
	////////////////////////////////////////////
	public Sistema getSistema() {
		return sistema;
	}
	public void setSistema(Sistema sistema) {
		this.sistema = sistema;
	}
	
	@Override
	public void cambiaronLasDisponibilidades() {
		ObservableUtils.firePropertyChanged(this, "puedeAgregar", this.isPuedeAgregar());
	}
	
	public boolean isPuedeAgregar(){
		return this.getEmpleado().getDisponibilidad().getDiasDisponibles().size() >= 1;
	}
	
	/////////////////////////////////////////////
	//Constructor
	////////////////////////////////////////////
	public CrearEmpleado(Empleado empleado, Sistema sistema) {
		super(empleado);
		this.sistema = sistema;
	}
}
